<?php
/**
 * 登录控制器
 */
Class LoginAction extends Action {

	/**
	 * 登录页视图
	 */
	Public function index () {
		$this->display();
	}

	/**
	 * 登录表单处理
	 */
	Public function login () {
		if (!$this->isPost()) {
			halt('页面不存在');
		}

		$account = $this->_post('account');
		$pwd = $this->_post('pwd', 'md5');
		$where = array('account' => $account);
		$user = M('user')->where($where)->find();

		if (!$user || $user['password'] != $pwd) {
			$this->error('账号或密码错误');
		}
		if ($user['lock']) {
			$this->error('用户被锁定');
		}

		//处理下一次自动登录
		if (isset($_POST['auto'])) {
			$value = ency($user['account']);
			@setcookie('auto', $value, C('AUTO_LOGIN_TIME'), '/');
		}
		//登录成功写入SESSION并跳转到首页
		session('uid', $user['id']);
		header('Content-Type:text/html;Charset=UTF-8');
		redirect(__APP__, 3, '登录成功，正在为您跳转...');
	}

	/**
	 * 注册页
	 */
	Public function register () {
		$this->display();
	}

	/**
	 * 注册表单处理
	 */
	Public function regis () {
		if (!$this->isPost()) {
			halt('页面不存在');
		}
		if ($_SESSION['verify'] != md5($_POST['verify'])) {
			$this->error('验证码错误');
		}
		if ($_POST['pwd'] != $_POST['pwded']) {
			$this->error('两次密码不一致');
		}

		//接收插入数据
		$data = array(
			'account' => $this->_post('account'),
			'password' => $this->_post('pwd', 'md5'),
			'registime' => $_SERVER['REQUEST_TIME'],
			'userinfo' => array(
				'uname' => $this->_post('uname')
				)
			);

		if ($id = D('UserRelation')->insert($data)) {
			session('uid', $id);	//插入成功把用户ID写入SESSION

			header('Content-Type:text/html;Charset=UTF-8');
			redirect(__APP__, 3, '注册成功，正在为您跳转...');
		} else {
			$this->error('注册失入，请重试...');
		}
	}

	/**
	 * 获取验证码
	 */
	Public function verify () {
		import('ORG.Util.Image');	//引入验证码类
		Image::buildImageVerify(4, 1, 'png', null, 25);
	}

	/**
	 * 异步验证账号
	 */
	Public function checkAccount () {
		if (!$this->isAjax()) {
			halt('页面不存在');
		}
		$name = $this->_post('account');
		$where = array('account' => $name);
		if (M('user')->where($where)->getField('id')) {
			echo 'false';
		} else {
			echo 'true';
		}
	}

	/**
	 * 异步验证昵称
	 */
	Public function checkUname () {
		if (!$this->isAjax()) {
			halt('页面不存在');
		}
		$name = $this->_post('uname');
		$where = array('uname' => $name);
		if (M('userinfo')->where($where)->getField('id')) {
			echo 'false';
		} else {
			echo 'true';
		}
	}

	/**
	 * 异步验证验证码
	 */
	Public function checkVerify () {
		if (!$this->isAjax()) {
			halt('页面不存在');
		}
		if ($_SESSION['verify'] != md5($_POST['verify'])) {
			echo 'false';
		} else {
			echo 'true';
		}
	}
}
?>